Skip to content

Commit

Permalink
hbd!
Browse files Browse the repository at this point in the history
  • Loading branch information
ryanblock committed Oct 14, 2021
0 parents commit fa5063d
Show file tree
Hide file tree
Showing 15 changed files with 433 additions and 0 deletions.
44 changes: 44 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
name: Bug report
about: Create a report to help us improve this project

---
<!-- We always prioritize issues with clear repro steps and/or reduced test cases, thanks in advance! -->

**Describe the issue**
A clear and concise description of the bug


**Steps to reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error that says '....'


**Expected behavior**
A clear and concise description of what you expected to happen


**Screenshots**
If applicable, add screenshots to help explain your problem


**Desktop**
Please complete the following information (if appropriate):
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]


**Mobile**
Please complete the following information (if appropriate):
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]


**Additional context**
Add any other context or notes about the problem here
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Software is never done! Suggest an idea to make this project even better

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. (Example: I find it frustrating when trying to _____ because _____...)


**Describe the solution you'd like**
A clear and concise description of what you'd like to happen.


**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered. These are quite helpful! (Example: If it did _____ instead of _____, users would still have problems because _____...)


**Additional context or notes**
Add any other context or screenshots about the feature request here.
21 changes: 21 additions & 0 deletions .github/code_of_conduct.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Architect Code of Conduct

We are strongly committed to ensuring the Architect community, and the various online and offline spaces in which its members congregate and collaborate, are safe, positive, inclusive, constructive, and welcoming environments.

As such, the Architect project adheres to the [OpenJS Foundation Code of Conduct](https://github.com/openjs-foundation/cross-project-council/blob/master/CODE_OF_CONDUCT.md), which itself adheres to the [Contributor Covenant](https://www.contributor-covenant.org).

Lack of familiarity with this or the OpenJS Foundation Codes of Conduct, or the Contributor covenant, is not an excuse for non-adherence.


# Reporting
If you are the subject of any behavior prohibited by this Code of Conduct, or observe someone who is, please contact an Architect team member immediately.

If you know an Architect team member, you may wish to contact them personally (and you should); but if not, please [contact us via email](mailto:[email protected]).

If possible, please attempt to collect any relevant information and evidence, including links, screenshots, or other recordings of any incident.

Reports will be handled with the utmost care, confidence, and sensitivity towards the individual(s) reporting.


# Enforcement
Should incidents arise, upon adjudication those found to be in violation of this Code of Conduct may be immediately expelled from the Architect community, including events, forums, chat workspaces, code repositories, and any other place where Architect community members collaborate.
8 changes: 8 additions & 0 deletions .github/contributing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Contributing

## First: go read the [Architect Code of Conduct](/.github/code_of_conduct.md)

### Agreement to the Architect Code of Conduct
By participating in and contributing to the Architect community — including, but not limited to its open source projects, any related online venues such as GitHub, Slack, and in-person events, etc. — you agree to the [Architect Code of Conduct](/.github/code_of_conduct.md).

Lack of familiarity with this Code of Conduct is not an excuse for not adhering to it.
22 changes: 22 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
## Thank you for helping out! ✨

### We really appreciate your commitment to improving Architect

To maintain a high standard of quality in our releases, before merging every pull request we ask that you've completed the following:

- [ ] Forked the repo and created your branch from `master`
- [ ] Made sure tests pass (run `npm it` from the repo root)
- [ ] Expanded test coverage related to your changes:
- [ ] Added and/or updated unit tests (if appropriate)
- [ ] Added and/or updated integration tests (if appropriate)
- [ ] Updated relevant documentation:
- [ ] Internal to this repo (e.g. `readme.md`, help docs, inline docs & comments, etc.)
- [ ] [Architect docs (arc.codes)](https://github.com/architect/arc.codes)
- [ ] Summarized your changes in `changelog.md`
- [ ] Linked to any related issues, PRs, etc. below that may relate to, consume, or necessitate these changes

Please also be sure to completed the CLA (if you haven't already).

Learn more about [contributing to Architect here](https://arc.codes/intro/community).

Thanks again!
108 changes: 108 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: Node CI

# Push tests pushes; PR tests merges
on: [ push, pull_request ]

defaults:
run:
shell: bash

jobs:

# Test the build
build:
# Setup
runs-on: ${{ matrix.os }}
strategy:
matrix:
node-version: [ 14.x ]
os: [ ubuntu-latest ]

# Go
steps:
- name: Check out repo
uses: actions/checkout@v2

- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}

- name: Env
run: |
echo "Event name: ${{ github.event_name }}"
echo "Git ref: ${{ github.ref }}"
echo "GH actor: ${{ github.actor }}"
echo "SHA: ${{ github.sha }}"
VER=`node --version`; echo "Node ver: $VER"
VER=`npm --version`; echo "npm ver: $VER"
- name: Install
run: npm install

- name: Test
run: npm test
env:
CI: true

- name: Notify
uses: sarisia/actions-status-discord@v1
# Only fire alert once
if: github.ref == 'refs/heads/main' && failure() && matrix.node-version == '14.x' && matrix.os == 'ubuntu-latest'
with:
webhook: ${{ secrets.DISCORD_WEBHOOK }}
title: "build and test"
color: 0x222222
username: GitHub Actions

# ----- Only git tag testing + package publishing beyond this point ----- #

# Publish to package registries
publish:
# Setup
needs: build
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest

# Go
steps:
- name: Check out repo
uses: actions/checkout@v2

- name: Set up Node.js
uses: actions/setup-node@v1
with:
node-version: 14
registry-url: https://registry.npmjs.org/

- name: Install
run: npm i

# Publish to npm
- name: Publish @RC to npm
if: contains(github.ref, 'RC')
run: npm publish --tag RC
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Publish @latest to npm
if: contains(github.ref, 'RC') == false #'!contains()'' doesn't work lol
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

# Set up Node again, this time using GitHub as the publish target
- name: Set up Node.js
uses: actions/setup-node@v1
with:
node-version: 14
registry-url: https://npm.pkg.github.com/

- name: Notify
uses: sarisia/actions-status-discord@v1
if: always()
with:
webhook: ${{ secrets.DISCORD_WEBHOOK }}
title: "npm publish"
color: 0x222222
username: GitHub Actions
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.git/
.nyc_output/
coverage/
node_modules/
package-lock.json
test/tmp
.DS_Store
4 changes: 4 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.DS_Store
.git/
.github/
.eslintrc.*
2 changes: 2 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
package-lock=false
save-prefix=~
87 changes: 87 additions & 0 deletions cjs/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
// Canonical runtime list: https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html
// Array order matters, newest (or most preferable) must always be at the top
// Runtimes still being tested out can be added, just not at runtimes[runtime][0]
let runtimes = {
node: [
'nodejs14.x',
'nodejs12.x',
'nodejs10.x',
],
python: [
'python3.9',
'python3.8',
'python3.7',
'python3.6',
'python2.7',
],
ruby: [
'ruby2.7',
'ruby2.5',
],
java: [
'java11',
'java8.al2',
'java8',
],
go: [
'go1.x',
],
dotnet: [
'dotnetcore3.1',
'dotnetcore2.1',
],
custom: [
'provided.al2',
'provided',
],
}

let runtimeList = Object.values(runtimes).reduce((a, b) => a.concat(b), [])

let runtimesByArchitecture = {
arm64: [
...runtimes.node.slice(0, 2),
...runtimes.python.slice(0, 2),
...runtimes.ruby.slice(0, 1),
...runtimes.java.slice(0, 2),
...runtimes.dotnet.slice(0, 1),
...runtimes.custom.slice(0, 1),
],
x86_64: [
...runtimes.node,
...runtimes.python,
...runtimes.ruby,
...runtimes.java,
...runtimes.go,
...runtimes.dotnet,
...runtimes.custom,
],
}

let architecturesByRuntime = {}
Object.values(runtimes).forEach(r => {
r.forEach(runtime => {
architecturesByRuntime[runtime] = []
if (runtimesByArchitecture.arm64.includes(runtime)) {
architecturesByRuntime[runtime].push('arm64')
}
if (runtimesByArchitecture.x86_64.includes(runtime)) {
architecturesByRuntime[runtime].push('x86_64')
}
})
})

// Add aliases after the other stuff populated to prevent dupes
runtimes.nodejs = runtimes.node
runtimes['node.js'] = runtimes.node
runtimes.py = runtimes.python
runtimes.rb = runtimes.ruby
runtimes.golang = runtimes.go
runtimes['.net'] = runtimes.dotnet

module.exports = {
runtimes,
runtimeList,
runtimesByArchitecture,
architecturesByRuntime,
}
1 change: 1 addition & 0 deletions cjs/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ "type": "commonjs" }
5 changes: 5 additions & 0 deletions esm/.eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports = {
parserOptions: {
sourceType: 'module'
}
}
2 changes: 2 additions & 0 deletions esm/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
import lambdaRuntimes from '../cjs/index.js'
export default lambdaRuntimes
29 changes: 29 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"name": "lambda-runtimes",
"description": "Canonical list of AWS Lambda runtime identifiers and corresponding CPU architectures",
"version": "0.0.0",
"type": "module",
"module": "./esm/index.js",
"main": "./cjs/index.js",
"exports": {
"import": "./esm/index.js",
"default": "./cjs/index.js"
},
"repository": {
"type": "git",
"url": "git+https://github.com/architect/lambda-runtimes.git"
},
"license": "Apache-2.0",
"scripts": {
"lint": "eslint . --fix",
"test": "npm run lint",
"rc": "npm version prerelease --preid RC"
},
"devDependencies": {
"@architect/eslint-config": "^2.0.1",
"eslint": "^8.0.0"
},
"eslintConfig": {
"extends": "@architect/eslint-config"
}
}
Loading

0 comments on commit fa5063d

Please sign in to comment.